home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Small Eiffel 0.4.8 / lib_rand / gen_rand.e < prev    next >
Text File  |  1997-04-13  |  1KB  |  62 lines

  1. -- Part of SmallEiffel -- Read DISCLAIMER file -- Copyright (C) 
  2. -- Dominique COLNET and Suzanne COLLIN -- colnet@loria.fr
  3. --
  4. deferred class GEN_RAND
  5.    -- 
  6.    -- Here is the common way to use a random number generator.
  7.    -- Current implementations are MIN_STAND, STD_RAND.
  8.    --
  9.  
  10. feature {NONE} -- Creation procedures:
  11.  
  12.    make is
  13.      -- Create the generator with an automatic setting
  14.      -- of `seed_value' (Automatic setting is done using
  15.      -- internal address of Current for example).
  16.       deferred
  17.       end;
  18.  
  19.    with_seed(seed_value: INTEGER) is
  20.      -- Create the generator with an explicit `seed_value'.
  21.       deferred
  22.       end;
  23.  
  24. feature
  25.    
  26.    next is
  27.      -- Compute next random number in sequence.
  28.       deferred
  29.       end;
  30.  
  31. feature -- No modifications :
  32.    
  33.    last_double: DOUBLE is
  34.      -- Look at the last computed number.
  35.      -- Range 0 to 1;
  36.       do
  37.      Result := last_real.to_double;
  38.       ensure
  39.      Result > 0 and Result < 1
  40.       end;
  41.    
  42.    last_real: REAL is
  43.      -- Look at the last computed number.
  44.      -- Range 0 to 1;
  45.       deferred
  46.       ensure
  47.      Result > 0 and Result < 1
  48.       end;
  49.    
  50.    last_integer(n:INTEGER):INTEGER is
  51.      -- Look the last computed number.
  52.      -- Range 1 to `n'.
  53.       require 
  54.      n >= 1
  55.       deferred
  56.       ensure
  57.      1 <= Result and Result <= n
  58.       end;
  59.  
  60. end -- GEN_RAND
  61.  
  62.